package fr.template.www.presentation.managedbean;

import java.io.IOException;
import java.io.Serializable;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 * Defini les propriétés de navigation du site internet
 * @author Sylvain Goubaud
 */
@ManagedBean(name = "mbSiteProperties", eager=true)
@ApplicationScoped()
public class SitePropertiesBean implements Serializable{

    private String site;
    private String pageCentrale = "includes/gridcategories.xhtml";
    private String bandeauNord = "includes/connexion.xhtml";
    private String bandeauOuest = "includes/menucategories.xhtml";
    
    /**
     * Permet de récupérer le nom du site consommateur des services
     * @return nom du site
     */
    public static String chargeProperties() {
        Properties p = new Properties();
        try {
            p.loadFromXML(Thread.currentThread().getContextClassLoader().getResourceAsStream("site.xml"));
        } catch (IOException ex) {
            Logger.getLogger(SitePropertiesBean.class.getName()).log(Level.SEVERE, null, ex);
        }
        return p.getProperty("site");
    }
    
    
    // =================================================  //
    //                    GETTER - SETTER                 //
    // =================================================  //
    
    /**
     * Obtient la page incluse dans la page centrale
     * @return url de la page incluse
     */
    public String getPageCentrale() {
        return pageCentrale;
    }

    /**
     * Defini la page centrale du site
     * @param pageCentrale url de la page
     */
    public void setPageCentrale(String pageCentrale) {
        this.pageCentrale = pageCentrale;
    }

    /**
     * Obtient la page incluse dans le bandeau nord
     * @return url de la page incluse
     */
    public String getBandeauNord() {
        return bandeauNord;
    }

    /**
     * Definit la page incluse dans le bandeau nord
     * @param bandeauOuest url de la page
     */
    public void setBandeauNord(String bandeauNord) {
        this.bandeauNord = bandeauNord;
    }

    /**
     * Obtient la page incluse dans le bandeau ouest
     * @return url de la page incluse
     */
    public String getBandeauOuest() {
        return bandeauOuest;
    }

    /**
     * Definit la page incluse dans le bandeau ouest
     * @param bandeauOuest url de la page
     */
    public void setBandeauOuest(String bandeauOuest) {
        this.bandeauOuest = bandeauOuest;
    }

    /**
     * Obtient le nom du site
     * @return nom du site
     */
    public String getSite() {
        return chargeProperties();
    }

    /**
     * Defini le nom du site
     * @param site nom a definir
     */
    public void setSite(String site) {
        this.site = site;
    }
    
    
}
